import CryptoJS from 'crypto-js';

// 定义密钥和向量
const key = CryptoJS.enc.Utf8.parse('1234567890123456'); // 16位密钥
const iv = CryptoJS.enc.Utf8.parse('1234567890123456'); // 16位向量

export default {
  /**
   * 加密方法
   * @param {string} word - 需要加密的字符串
   * @returns {string} - 加密后的字符串
   */
  encrypt(word) {
    // 将输入的字符串转换为Utf8编码格式
    const srcs = CryptoJS.enc.Utf8.parse(word);
    // 使用AES算法进行加密
    const encrypted = CryptoJS.AES.encrypt(srcs, key, { iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 });
    // 将加密后的数据转换为字符串格式并返回
    return encrypted.toString();
  },
  /**
   * 解密方法
   * @param {string} word - 需要解密的字符串
   * @returns {string} - 解密后的字符串
   */
  decrypt(word) {
    // 使用AES算法进行解密
    const decrypt = CryptoJS.AES.decrypt(word, key, { iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 });
    // 将解密后的数据转换为Utf8编码格式并返回
    return CryptoJS.enc.Utf8.stringify(decrypt).toString();
  }
};
